package com.swlz.service;

import java.io.File;
import java.io.InputStream;
import java.util.List;

import javax.servlet.http.Part;

import com.swlz.entity.WebFile;
import com.swlz.exception.CodeException;
import com.swlz.vo.PageVO;

/**
 * <pre>
 * 业务逻辑接口
 * 网站文件
 * 用于上传文件的记录表
 * ClassName : com.swlz.service.WebFileService
 * Author : swlz
 * E-Mail : 2233875735@qq.com
 * Date : 2020-06-29 09:02:26
 * Version : 1.0
 * Copyright 2020 swlz.top Inc. All rights reserved. 
 * Warning: this content is only for internal circulation of the company. It is forbidden to divulge it or use it for other commercial purposes
 * </pre>
 **/
public interface WebFileService {


	/**
	 * 添加一个新的网站文件
	 * @param file Part
	 * @return 文件存放唯一标记
	 * @throws CodeException 500:添加网站文件错误
	 */
	WebFile add(Part file)throws CodeException;
	

	
	/**
	 * 根据文件编号删除网站文件
	 * @param fileId - 文件编号
	 * @return
	 * @throws CodeException 502:删除网站文件错误
	 */
	int delete(Long fileId)throws CodeException;
	
	/**
	 * 根据文件编号获取网站文件对象
	 * @param fileId - 文件编号
	 * @return
	 * @throws CodeException 503:获取网站文件失败
	 */
	WebFile get(Long fileId)throws CodeException;
	
	InputStream get(WebFile webFile)throws CodeException;
	String getUrl(WebFile webFile)throws CodeException;
	
	/**
	 * 根据模型查找匹配的数据，并进行分页
	 * @param webFile - 匹配数据模型
	 * @param current - 当前页面
	 * @param rowMax - 每页最大值
	 * @return - 分页结果
	 * @throws CodeException 504:获取网站文件分页数据失败
	 */
	PageVO<WebFile> page(WebFile webFile,Integer current,Integer rowMax)throws CodeException;

	/**
	 * 根据模型查找匹配的数据
	 * @param webFile - 匹配数据模型
	 * @param len
	 * @return
	 * @throws CodeException 505:获取网站文件列表数据失败
	 */
	List<WebFile> list(WebFile webFile,int len);
	
	
 
}
